package kingdee;

import cn.hutool.core.map.MapUtil;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.http.webservice.SoapClient;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

import java.util.Map;

public class WSEASVersionUtil {

    public static String getVersion(String ip, int port) {
        String url = UrlBuilder.create()
                .setScheme("http")
                .setHost(ip).setPort(port)
                .addPath("/ormrpc/services")
                .build();
        Map<String, String> heads = MapUtil.newHashMap();
        heads.put("SOAPAction", "");
        // 新建客户端
        SoapClient client = SoapClient.create(url + "/Version?WSDL")
                .addHeaders(heads)
                // 设置要请求的方法，此接口方法前缀为web，传入对应的命名空间
                .setMethod("axis:getVersion", "http://axis.apache.org")
                // 设置参数，此处自动添加方法的前缀：web
                ;

        // 发送请求，参数true表示返回一个格式化后的XML内容
        // 返回内容为XML字符串，可以配合XmlUtil解析这个响应
        JSONObject jo = JSONUtil.xmlToJson(client.send());
        String version = jo.getJSONObject("soapenv:Envelope").getJSONObject("soapenv:Body").getJSONObject("ns1:getVersionResponse").getJSONObject("getVersionReturn").getStr("content");

        return version;
    }

    public static void main(String[] args) {
        getVersion("192.168.2.203", 6888);
    }

}